﻿using System;
using System.Xml.Linq;

namespace YArchitech.LIB
{
	public static class XmlHelper
	{
		public static int ToInt(XElement xe, string attribute, int def = 0)
		{
			XAttribute xattribute = xe.Attribute(attribute);
			if (xattribute == null)
			{
				return def;
			}
			return (int)xattribute;
		}

		public static double ToDouble(XElement xe, string attribute, double def = 0.0)
		{
			XAttribute xattribute = xe.Attribute(attribute);
			if (xattribute == null)
			{
				return def;
			}
			return (double)xattribute;
		}

		public static bool ToBool(XElement xe, string attribute, bool def = false)
		{
			XAttribute xattribute = xe.Attribute(attribute);
			if (xattribute == null)
			{
				return def;
			}
			return (bool)xattribute;
		}

		public static string ToString(XElement xe, string attribute, string def = "")
		{
			XAttribute xattribute = xe.Attribute(attribute);
			if (xattribute == null)
			{
				return def;
			}
			return xattribute.Value;
		}

		public static XElement GetChildElement(XElement xe, string ChildElementName)
		{
			XElement xelement = xe.Element(ChildElementName);
			if (xelement == null)
			{
				xelement = new XElement(ChildElementName);
				xe.Add(xelement);
			}
			return xelement;
		}
	}
}
